package models

const (
	ORIGIN = iota // 原始资源
	TAG           // 标签资源
)

const Version = "1.0.0" // 工具版本

// ValJsonKey 资源键类型
type ValJsonKey struct {
	Key       string `json:"key"`       // 键名
	Type      int    `json:"type"`      // 类型 (ORIGIN 或 TAG)
	OriginKey string `json:"originKey"` // 原始键名 (仅当 Type == TAG 时有效)
}

// ValJson 资源值类型
type ValJson struct {
	Val string   `json:"val"` // 资源值
	Tag []string `json:"tag"` // 标签列表
}

// AuditRecord 审计记录
type AuditRecord struct {
	ResourceKey string `json:"resourceKey"` // 资源键
	Operation   string `json:"operation"`   // 操作类型: get, open, update, delete, tag, etc.
	Timestamp   int64  `json:"timestamp"`   // 时间戳
	Count       int    `json:"count"`       // 操作次数
}

// AuditStats 审计统计
type AuditStats struct {
	TotalOperations int            `json:"totalOperations"` // 总操作次数
	ByOperation     map[string]int `json:"byOperation"`     // 按操作类型统计
	ByResource      map[string]int `json:"byResource"`      // 按资源统计
}

// HistoryRecord 详细历史记录
type HistoryRecord struct {
	ID          int64  `json:"id"`          // 记录ID
	ResourceKey string `json:"resourceKey"` // 资源键
	Operation   string `json:"operation"`   // 操作类型
	Timestamp   int64  `json:"timestamp"`   // 时间戳
	TimeStr     string `json:"timeStr"`     // 格式化时间
	Command     string `json:"command"`     // 完整命令
	Args        string `json:"args"`        // 命令参数（可选）
}

// HistoryStats 历史统计
type HistoryStats struct {
	TotalRecords int             `json:"totalRecords"` // 总记录数
	Records      []HistoryRecord `json:"records"`      // 历史记录列表
	ByOperation  map[string]int  `json:"byOperation"`  // 按操作类型统计
	ByResource   map[string]int  `json:"byResource"`   // 按资源统计
}

// SortOrder 定义排序方向类型
type SortOrder string

const (
	Ascending  SortOrder = "asc"
	Descending SortOrder = "desc"
)

type TtlIni struct {
	DbPath string `ini:"db_path"`
}
